import axios from 'axios' // 引入axios
import { Message } from 'element-ui'
import router from '../router/index'
const axios2 = axios.create({
  baseURL: 'http://www.localhost:8989' // 请求的根路径
})
axios2.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
  // 在每次发送请求前判断，如果请求的url不是登录接口，那么每次发起请求的时候可以带上token
  if (config.url !== '/system/user/login') {
    config.headers.Authorization = localStorage.getItem('token')
  }
  return config
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error)
})
axios2.interceptors.response.use(function (response) {
  if (response.data && response.data.data.errorCode === 50001) {
    Message({ type: 'danger', message: '用户身份已经过期,请重新登录' }) // 抛出提示框
    window.localStorage.removeItem('token')
    setTimeout(() => {
      router.replace('/login') // 让路由强制跳转到登录页
    }, 1000) // 一秒后跳转
  }
  // 对响应数据做点什么
  return response.data
}, function (error) {
  // 如果后台的状态响应码为401  给个提示，清除本地token 让他强制返回登录页
  if (error.response && error.response.status === 401) {
    window.localStorage.clear()
    Message({ type: 'danger', message: '用户身份已经过期,请重新登录' }) // 抛出提示框
    setTimeout(() => {
      router.push('/login') // 让路由强制跳转到登录页
    }, 1000) // 一秒后跳转
  }

  return Promise.reject(error)
})
export default ({ url, method = 'get', params = {}, data = {}, headers = {}, transformRequest, responseType }) => {
  return axios2({
    url: url,
    method: method,
    params: params,
    data: data,
    headers: headers,
    transformRequest,
    responseType
  })
}
